package tut.Map.weakHashMap.cacLoaireference.strong_ex1;

public class StrongRefDemo2 {
	public static class Something {
		protected void finalize() {
			System.out.println("Đây là lời của tôi trước khi vĩnh biệt");
		}
	}

	private static void test() {
		Something strong = new Something();
	}

	public static void main(String args[]) throws InterruptedException {
		test();
		System.gc();
		Thread.sleep(5000);
		System.out.println("Mọi thứ kết thúc");
	}
}
/*
 Giải thích: Tương tự như ví dụ 1, sau khi kết thúc method test(), tham chiếu đến đối
  tượng Something bị mất (vì là biến cục bộ), cho nên đối tượng đủ điều kiện để Garbage Collector dọn dẹp,
 dòng chữ "Đây là lời của tôi trước khi vĩnh biệt" được in ra.
Nhưng nếu ta sửa lại code, khai báo strong là biến của class như
dưới đây thì khi kết thúc method test(), tham chiếu đến đối tượng Something chưa mất, cho nên chưa đủ điều kiện để
Garbage Collector dọn dẹp đối tượng và kết quả là dòng chữ "Đây là lời của tôi trước khi vĩnh biệt" KHÔNG được in ra .
(vi du 3)
 */
